package com.wf.model.request;

import com.wf.model.entity.CustomApprover;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 该类不可轻易增删字段，对象会被序列化到数据库
 * @author shuaidongdong
 */
public class WorkFlowJsonRequest implements Serializable {
    static final long serialVersionUID = 9036575060126240425L;

    @ApiModelProperty(value = "所属系统",required = true)
    private String tenantId;

    @ApiModelProperty(value = "流程定义唯一标识",required = true)
    private String processKey;

    @ApiModelProperty(value = "业务号，一般用来保存业务id",required = true)
    private String businessKey;

    @ApiModelProperty(value = "待办中展示的标题",required = true)
    private String title;

    @ApiModelProperty(value = "待办中展示的描述")
    private String description;

    @ApiModelProperty(value = "申请人",required = true)
    private String applyUserId;

    @ApiModelProperty(value = "公司编号【申请单位】")
    private String companyCode;

    @ApiModelProperty(value = "所属板块")
    private String boardCode;

    @ApiModelProperty(value = "流程变量")
    private Map<String,String> params;

    @ApiModelProperty(value = "客户端传递的审批人信息")
    private List<CustomApprover> approverList;

    @ApiModelProperty(value = "申请时间【不需要传】")
    private Date applyDate;

    @ApiModelProperty(value = "备注")
    private String comment;

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getProcessKey() {
        return processKey;
    }

    public void setProcessKey(String processKey) {
        this.processKey = processKey;
    }

    public String getBusinessKey() {
        return businessKey;
    }

    public void setBusinessKey(String businessKey) {
        this.businessKey = businessKey;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getApplyUserId() {
        return applyUserId;
    }

    public void setApplyUserId(String applyUserId) {
        this.applyUserId = applyUserId;
    }

    public String getCompanyCode() {
        return companyCode;
    }

    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }

    public String getBoardCode() {
        return boardCode;
    }

    public void setBoardCode(String boardCode) {
        this.boardCode = boardCode;
    }

    public Map<String, String> getParams() {
        return params;
    }

    public void setParams(Map<String, String> params) {
        this.params = params;
    }

    public Date getApplyDate() {
        return applyDate;
    }

    public void setApplyDate(Date applyDate) {
        this.applyDate = applyDate;
    }

    public List<CustomApprover> getApproverList() {
        return approverList;
    }

    public void setApproverList(List<CustomApprover> approverList) {
        this.approverList = approverList;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    @Override
    public String toString() {
        return "WorkFlowJsonRequest{" +
                "tenantId='" + tenantId + '\'' +
                ", processKey='" + processKey + '\'' +
                ", businessKey='" + businessKey + '\'' +
                ", title='" + title + '\'' +
                ", description='" + description + '\'' +
                ", applyUserId='" + applyUserId + '\'' +
                ", companyCode='" + companyCode + '\'' +
                ", boardCode='" + boardCode + '\'' +
                ", params=" + params +
                ", approverList=" + approverList +
                ", applyDate=" + applyDate +
                ", comment='" + comment + '\'' +
                '}';
    }
}
